/**
 * TS中的类型
 *  any  some
 *
 *   anyscript   javascript
 */
// let a:any
// a = "张飞"
// a = 100
/**
 * unknown  类型 安全的  any
 */
// 设置a的类型为unknown
// let a: unknown
// //以下对a的赋值，均符合规范 a = 100
// a = false
// a = '你好'
// // 设置x的数据类型为string
// let x: string
// // x = a //警告：不能将类型“unknown”分配给类型“string”
// if(typeof a ==='string'){
//     x = a
// }
/**
 * never
 */
function sum(numa, numb) {
    throw new Error("aaaaa");
}
/**
 * void
 *
 */
/**
 * 方法没有写return 默认返回的是undefined
 */
function sayHi() {
    console.log("Hello");
}
let result = sayHi();
console.log("result", result);
console.log("result", result + '');
//原始类型
let mystr1 = "张三";
//包装类
let mystr2 = new String("李四");
//自动装箱
console.log(mystr1.length);
//因为String类型本身就可以 有length
console.log(mystr2.length);
/**
 * object
 */
let a; //a的值可以是任何【⾮原始类型】，包括：对象、函数、数组等
// 以下代码，是将【⾮原始类型】赋给a，所以均符合要求 
a = {};
a = { name: '张三' };
a = [1, 3, 5, 7, 9];
a = function () { };
a = new String('123');
class Person {
}
a = new Person();
export {};
